package test03;

import java.util.Arrays;
import java.util.stream.Stream;

/**
 * @Author czl
 * @Date 2024-04-16
 */
public class MainTest02 {
    public static void main(String[] args) {
        Student [] student = {
                new Student("张三", 18),
                new Student("李四", 21),
                new Student("王五", 49),
                new Student("赵六", 19)
                };

        Stream<Student> stream = Arrays.stream(student);

        //链式方法


        //过滤姓李的学生
         stream.filter(t -> t.getName().startsWith("李"))
        //再过滤年龄大于18岁的学生
        .filter(t -> t.getAge() > 18)
        //再根据年龄大到小排序
        .sorted((o1, o2) -> o2.getAge() - o1.getAge())

        // 把学生对象转换（映射）为姓名字符串
        //  R apply(T t);
        .map(Student::getName)

        // 只需要前面两个
        .limit(2)

        // 循环遍历输出结果
        .forEach(System.out::println);
    }
}
